﻿Public Class perBairro
    Inherits perPadrao

#Region "Declaração de variáveis"
    Private objBuscaId As New perProximoId
#End Region

#Region "Propriedades"

    Public ReadOnly Property sqlConsulta(ByVal iIDCidade As Int32) As String
        Get
            Dim sSql As String
            sSql = "SELECT IDBairro, Bairro"
            sSql &= " FROM DC_Bairros"

            If (iIDCidade > 0) Then
                sSql &= " WHERE IDCidade = " & iIDCidade
            End If

            sSql &= " ORDER BY Bairro"
            Return sSql
        End Get
    End Property

#End Region


#Region "Métodos"

    Public Function inserirBairro(ByVal sBairro As String, _
                                  ByVal iIdCidade As Int32) As Int32

        Dim iIdBairro As Int32
        Dim sSql As String

        Try
            iIdBairro = Me.objBuscaId.BuscaID("IDBairro", "DC_Bairros")

            sSql = "  INSERT INTO DC_Bairros "
            sSql &= " ( "
            sSql &= "   IDBairro, "
            sSql &= "   IDCidade, "
            sSql &= "   Bairro "
            sSql &= " ) "
            sSql &= " VALUES "
            sSql &= " ( "
            sSql &= iIdBairro & ", "
            sSql &= iIdCidade & ", "
            sSql &= "'" & sBairro & "' "
            sSql &= " ) "

            MyBase.executarAcao(sSql)
            Return iIdBairro
        Catch ex As Exception
            Throw New Exception("Exceção no método 'inserirBairro'. " & Environment.NewLine & Environment.NewLine & ex.Message)
        End Try

    End Function

    Public Sub alterarBairro(ByVal iIdBairro As Int32, _
                             ByVal iIdCidade As Int32, _
                             ByVal sBairro As String)

        Dim sSql As String

        Try

            sSql = "  UPDATE DC_Bairros SET "
            sSql &= "   IDCidade = " & iIdCidade & ", "
            sSql &= "   Bairro = '" & sBairro & "' "
            sSql &= " WHERE "
            sSql &= "   IDBairro = " & iIdBairro

            MyBase.executarAcao(sSql)

        Catch ex As Exception
            Throw New Exception("Exceção no método 'alterarBairro'. " & Environment.NewLine & Environment.NewLine & ex.Message)
        End Try

    End Sub

    Public Sub excluirBairro(ByVal iIdBairro As Int32)

        Dim sSql As String

        Try
            sSql = "  DELETE FROM "
            sSql &= "   DC_Bairros "
            sSql &= " WHERE "
            sSql &= "   IDBairro = " & iIdBairro

            MyBase.executarAcao(sSql)

        Catch ex As Exception
            Throw New Exception("Exceção no método 'excluirBairro'. " & Environment.NewLine & Environment.NewLine & ex.Message)
        End Try

    End Sub

    Public Function selecionarBairro(ByVal iIdBairro As Int32) As DataRow
        Dim sSql As String
        Dim dsDados As New DataSet

        Try
            sSql = " SELECT "
            sSql &= "   DC_Bairros.IdBairro, "
            sSql &= "   DC_Bairros.Bairro, "
            sSql &= "   DC_Bairros.IdCidade, "
            sSql &= "   DC_Cidades.Cidade "
            sSql &= " FROM DC_Bairros "
            sSql &= " LEFT JOIN DC_Cidades ON DC_Cidades.IdCidade = DC_Bairros.IdCidade "
            sSql &= " WHERE DC_Bairros.IDBairro = " & iIdBairro

            dsDados = MyBase.executarConsulta(sSql, "DC_Bairros")

            If Not dsDados Is Nothing AndAlso dsDados.Tables("DC_Bairros").Rows.Count > 0 Then
                Return dsDados.Tables("DC_Bairros").Rows(0)
            Else
                Return Nothing
            End If

        Catch ex As Exception
            Throw New Exception("Exceção no método 'selecionarBairro'. " & Environment.NewLine & Environment.NewLine & ex.Message)
        End Try

    End Function

    Public Function verificarBairroCidade(ByVal iIdCidade As Int32) As DataTable
        Dim sSql As String
        Dim dsDados As New DataSet

        Try
            sSql = " SELECT IdCidade"
            sSql &= " FROM DC_Bairros "

            If (iIdCidade > 0) Then
                sSql &= " WHERE IDCidade = " & iIdCidade
            End If

            dsDados = MyBase.executarConsulta(sSql, "DC_Bairros")

            If Not dsDados Is Nothing AndAlso dsDados.Tables("DC_Bairros").Rows.Count > 0 Then
                Return dsDados.Tables("DC_Bairros")
            Else
                Return Nothing
            End If

        Catch ex As Exception
            Throw New Exception("Exceção no método 'selecionarCampoBairro'. " & Environment.NewLine & Environment.NewLine & ex.Message)
        End Try

    End Function

    Public Function selecionarCampoBairro(ByVal sCampo As String, _
                                          ByVal iIDBairro As Int32) As DataTable
        Dim sSql As String
        Dim dsDados As New DataSet

        Try
            sSql = " SELECT " & sCampo
            sSql &= " FROM DC_Bairros "

            If (iIDBairro > 0) Then
                sSql &= " WHERE IDBairro = " & iIDBairro
            End If

            dsDados = MyBase.executarConsulta(sSql, "DC_Bairros")

            If Not dsDados Is Nothing AndAlso dsDados.Tables("DC_Bairros").Rows.Count > 0 Then
                Return dsDados.Tables("DC_Bairros")
            Else
                Return Nothing
            End If

        Catch ex As Exception
            Throw New Exception("Exceção no método 'selecionarCampoBairro'. " & Environment.NewLine & Environment.NewLine & ex.Message)
        End Try

    End Function
#End Region
End Class
